In a communications system, channel encoding is generally performed to improve reliability of data transmission and ensure quality of communication. A Polar code (polar code) is an encoding manner that can achieve a Shannon capacity and has low coding-decoding complexity. The Polar code is a linear block code. A generator matrix of the polar code is GN, and an encoding process of the polar code is x1N=u1NGN. For example GN=BNF⊗n, a code length is N=2n, and n≥0.
Herein,
      F    =          [                                    1                                0                                                1                                1                              ]        ,and BN is a transposed matrix, for example, a bit reversal (bit reversal) matrix.
F⊗n is a Kronecker power (Kronecker power) of F, defined as F⊗n=F⊗F⊗(n-1). The Polar code may be represented by a coset code (N, K, A, uAc), and an encoding process of the polar code is: x1N=uAGN(A)⊕uAcGN. Herein A is a set of information (information) bit indexes, GN.(A) is a sub-matrix obtained by using a row corresponding to an index in the set A in GN., and GN.(AC) is a sub-matrix obtained by using a row corresponding to an index in a set AC in GN.. uAc is frozen (frozen) bits, where a quantity of the frozen bits is (N−K), and the frozen bits are known bits. For simplicity, these frozen bits may be set to 0.
A conventional random (quasi-random) puncturing hybrid automatic repeat request (HARQ, Hybrid Automatic Repeat Request) technology may be used for the Polar code. The random (quasi-random) puncturing is randomly (quasi-randomly) selecting a position for puncturing. On a receive end, an LLR at a puncturing position is set to 0, a mother code decoding module and method are still used. In the random (quasi-random) puncturing manner, a frame error rate is relatively high, and HARQ performance is relatively poor.